program PicoRPI;
{$MODE OBJFPC}
{$H+}
{$MEMORY 10000,10000}

uses HAL, GPIO, UART;

var
  GPO_LED: CGPIO;
  U0: CUART;

  S: AnsiString = '';

begin
  GPO_LED:= CGPIO.Create(25);
  with GPO_LED do
  begin
    Dir:= TDIR.OUTPUT;
    Pull:= TPULL.UP;
    Value:= True;
  end;

  U0:= CUART.Create(0, 1, TUART.UART_0);
  U0.Start(115200);
  S:= S + 'CLK-SYS: ' + CHW.D2S(CHW.GetClock(TClock.CLK_SYS) div 1000000) + ' MHz'#13#10;
  S:= S + 'CLK-ADC: ' + CHW.D2S(CHW.GetClock(TClock.CLK_ADC) div 1000000) + ' MHz'#13#10;
  S:= S + 'CLK-USB: ' + CHW.D2S(CHW.GetClock(TClock.CLK_USB) div 1000000) + ' MHz'#13#10;
  U0.Send(S, Length(S));

  GPO_LED.Value:= False;

  while True do
  begin
    CHW.DelayMS(1000);
    GPO_LED.Value:= True;
    CHW.DelayMS(1000);
    GPO_LED.Value:= False;
  end;
end.

